The present invention relates generally to the field debugging software applications, and more particularly to identifying and collecting data for analysis of non-fatal abnormalities that occur during the execution of a software application.
A software application may be comprised of a plurality of modules, environments, executable files, and dynamically linked libraries that execute within one or more memory spaces. A software application can drive a number of end-user programs to perform a group of coordinated functions tasks, and/or activities for the benefit of the users of a computing system. A software application may also access data from various sources and other computing systems (e.g., storage systems). During the development, testing, and deployment of a software application, users of a software application may encounter various problems and inconsistencies during the execution of a software application. Some problems are internal to the software application. Other problems experienced by the software application can be related to interactions with other software and/or system issues. Various data dumps and system logs can be supplied to the developers of the software application to debug the software application.
With the advent of networked computing, grid computing, and cloud computing large computing applications, such as e-commerce apps, financial apps, medical apps, and enterprise apps often do not entirely execute within a single physical computer. Aspects of a software application can be distributed (e.g., hosted) among virtualized entities of one or more computing systems that are optimized for various functions, such as computational speed, transaction processing, database queries and updates, and Web services. In addition, some capabilities of a data center are purchased as: services, software, and/or platform service offerings by a user. As such, a developer of a software application can utilize various application programming interfaces (APIs) and middleware offered by the data center as opposed to coding all aspects of a software app. The developer of a software application may request manual intervention by an operator, a technician, and/or an administrator of the data center to obtain data (e.g., memory and log dumps) related to the operations, hangs, and/or faults that occur during the execution of the software app.